Skip to main content

대용량 데이터 행 테이블 작업

다중 스레딩, 다중 프로세싱

여러 세그먼트로 나누어 병렬로 검색하는 방법입니다. 이는 기본적으로 빅데이터와 하둡이 작동하는 방식입니다. 테이블의 하위집합을 더 작은 개념으로 맵핑하고 축소하는 것입니다.

인덱스

인덱스는 데이터베이스에서 특정 열에 대한 검색 속도를 높이기 위해 사용됩니다. 인덱스를 사용하면 데이터베이스는 테이블의 모든 행을 검색하지 않고도 특정 열의 값을 빠르게 찾을 수 있습니다.

파티셔닝

파티셔닝은 테이블을 더 작은 논리적 단위로 나누는 것입니다. 이를 통해 데이터베이스는 더 빠르게 검색할 수 있습니다. 수직적인 파티셔닝이 아닌 수평적인 파티셔닝에 대해 이야기 해보겠습니다. 수평적인 파티셔닝은 테이블 중간을 기준으로 반으로 나누는 것을 의미합니다. "여기부터 여기까지의 행은 디스크의 이 위치에 있어!"라고 말합니다. 이를 나누는 기준은 파티션 키(테이블 하나의 열)입니다. 그리고 각 파티션마다 다른 인덱스를 가질 수 있습니다.

샤딩

샤딩을 통해 이를 더 많은 호스트로 분산시킬 수 있습니다. 다만 이들은 서로 통신하지 않기에 트랜잭션의 문제가 생깁니다.

JSON 타입의 컬럼

위처럼 대용량 데이터를 처리하는 방법은 다양하지만, 하나의 행을 두고 하나의 열에 JSON 으로 관리하는 방법이 있습니다.

결론

우선적으로 대용량 데이터를 가지지 않도록 하는 방향성을 가져갑니다. 인덱스를 걸어 해결하고 이와 더불어서 파티셔닝을 해서 해결합니다. 그리고 샤딩을 통해 더 많은 호스트로 분산시키는 방법도 있습니다.

다양한 방법이 있지만, 트래픽을 기준으로 선택을 하는게 가장 중요하다.